package api.wares;

import com.github.pagehelper.PageInfo;
import dto.AddWares;
import dto.Dto;
import dto.ShowWares;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import pojo.Album;
import pojo.Sort;
import pojo.Wares;

import java.util.List;
import java.util.Map;

public interface WaresApi {

    /**
     * @param map id 商品id
     *            sortId 分类id
     * @return
     */
    @RequestMapping("getWares")
    Dto<List<ShowWares>> getWares(@RequestBody Map map);

    /**
     * @param map id 商品id
     * @return
     */
    @RequestMapping("getWares2")
    Dto<List<Wares>> getWares2(@RequestBody Map map);
    /**
     * @param map id 商品id
     *            sortId 分类id
     * @return
     */
    @RequestMapping("getAlbum")
    Dto<List<Album>> getAlbum(@RequestBody Map map);

    /**
     * @param map id 商品id
     *            sortId 分类id
     * @return
     */
    @RequestMapping("delAlbum")
    Dto<Integer> delAlbum(@RequestBody Map map);


    /**
     * @param list
     * @return
     */
    @RequestMapping("addAlbum")
    Dto<Integer> addAlbum(@RequestBody List<Album> list);

    /**
     * @param map pageNum 当前页
     *            pageSize 页面显示量
     *            sortId 分类id
     * @return
     */
    @RequestMapping("getWares_page")
    Dto<PageInfo<Wares>> getWares_page(@RequestBody Map map);

    /**
     * @param wares 更新商品信息
     * @return
     */
    @RequestMapping("updataWares")
    Dto<Integer> updateWares(@RequestBody Wares wares);

    /**
     * @param addWares 添加商品
     * @return
     */
    @RequestMapping("addWares")
    Dto<Integer> addWares(@RequestBody AddWares addWares);


    /**
     * @param map id 分类id
     *            sid 父分类id
     *            level 级别
     * @return
     */
    @RequestMapping("getSort")
    Dto<List<Sort>> getSort(@RequestBody Map map);


    /**
     * @param sort 添加分类
     * @return
     */
    @RequestMapping("addSort")
    Dto<Integer> addSort(@RequestBody Sort sort);

    /**
     * @param sort 修改分类
     * @return
     */
    @RequestMapping("updateSort")
    Dto<Integer> updateSort(@RequestBody Sort sort);

    /**
     * @param map 删除分类
     * @return
     */
    @RequestMapping("delSort")
    Dto<Integer> delSort(@RequestBody Map map);

    /**
     * @param map
     * pageNum pageSize
     * condition(搜索框，模糊查询商品id，商品名称)
     * sort 商品分类id,0表示所有
     * supplier 供应商id，0表示所有
     * Columns: id, name, isPutaway, rPrice, bPrice, unit, sort, brand, supplier, log, sum, ksum, sellSum
     * @return 编号，名称，是否上架，采购价，销售价，单位，分类，品牌，供应商，图片，系统库存，系统可用库存，销售量
     */
    @RequestMapping("getWaresList")
    Dto<PageInfo<ShowWares>> getWaresList(@RequestBody Map map);

    /**
     * @param map
     * pageNum pageSize
     * condition(搜索框，模糊查询商品id，商品名称)
     * sort 商品分类id,0表示所有
     * supplier 供应商id，0表示所有
     * houseId 仓库id，0表示所有
     * isPutaway 上下架，-1表示所有，0下架，1上架
     * Columns： id, name, isPutaway, rPrice, bPrice, unit, sort, brand, supplier, houseId, stock, kstock, house
     * @return  编号，名称，是否上架，采购价，销售价，单位，分类，品牌，供应商，仓库id，仓库库存，仓库可用库存，仓库名称
     */
    @RequestMapping("getWaresList2")
    Dto<PageInfo<ShowWares>> getWaresList2(@RequestBody Map map);

    /**
     * @param map
     * @return
     */
    @RequestMapping("getWaresList3")
    Dto<PageInfo<ShowWares>> getWaresList3(@RequestBody Map map);
    /**
     * @param map
     * @return
     */
    @RequestMapping("delWares")
    Dto<Integer> delWares(@RequestBody Map map);

}
